[筆記] Jest


Posted by tzutzu858 on 2020-06-29

利用 Jest 來寫你的第一個測試!

Jest是由Facebook,Inc.維護的JavaScript測試框架,其重點是簡單性 。 維基百科

步驟 Jest官網

資料夾先 init ,複習 npm

npm init

安裝 Jest

npm install jest

打開 package.jsondependencies 有剛剛下載的 Jest

一個 index.js 寫 function

function double(n){
   return n * 2
}
module.exports = double

一個檔案寫測試 index.test.js 用 XXX.test.js 是個慣例

var result = require('./index')

test(' 5*2 要等於 10 ', () => {
  expect(result(5)).toBe(10);
});

注意不是用 node 來跑,應該是要下 jest
因此打開 package.json 看到 scriptsjest 加進去

執行

npm run test

  • 錯的話就是 FAIL ,會跟你說錯在哪
  • 對的話就 PASS

為何在外面不能直接下 jest 指令,因為 jest 是安裝在你的專案底下
所以如果用 npm 指令來跑,他會先找你專案底下的東西,找到 jest ,就可以利用它來執行。可是在外面就是系統來跑,系統是在其他地方找看你有沒有安裝,可是你沒有,你是安裝在專案底下,所以才會用這種寫法。


版本比較新可以在外面直接下

npx jest index.test.js

npx 附在比較新的 npm 版本裡面,下 npx 他就會 npm 底下找 jest 。

多個測試,要幾個有幾個

var result = require('./index')

test(' 5*2 要等於 10 ', () => {
  expect(result(5)).toBe(10);
});

test(' 7*2 要等於 14 ', () => {
  expect(result(7)).toBe(14);
});

test(' 2*2 要等於 4 ', () => {
  expect(result(2)).toBe(4);
});

太分散,用個組合比較有結構

var result = require('./index')

describe ('測試', funstion(){

       test(' 5*2 要等於 10 ', () => {
         expect(result(5)).toBe(10);
       });

       test(' 7*2 要等於 14 ', () => {
         expect(result(7)).toBe(14);
       });

       test(' 2*2 要等於 4 ', () => {
         expect(result(2)).toBe(4);
       });
})

最後 : 先寫測試再寫程式:TDD (測試驅動開發)
TDD (Test-Driven Development)


#Jest







Related Posts

How to Set Up Firewall with UFW on Ubuntu 20.04

How to Set Up Firewall with UFW on Ubuntu 20.04

PM 工作流程解析與怎麼寫 PRD

PM 工作流程解析與怎麼寫 PRD

command line,那個電影世界裡駭客電腦上的黑色小視窗

command line,那個電影世界裡駭客電腦上的黑色小視窗


Comments